package org.yoki.edu.bg.radius.application.client;

import org.yoki.edu.bg.radius.core.client.domain.Client;
import org.yoki.edu.bg.radius.vo.client.ClientVO;
import com.yunzhitx.cloud.common.model.PageResult;
import org.springframework.transaction.annotation.Transactional;

import javax.inject.Named;
import java.util.List;


/**
* 代码生成器自动生成
* Date:2018-1-10 14:27:37
* @author
*/
@Named
@Transactional
public class ClientApplication{

    /* ******************************************************************************* *
                                            增
     * ******************************************************************************* */

    /**
     * 根据Id，更新Client
     *
     * @param entity
     * @return
     */
    public ClientVO create(Client entity) {
        entity.save();
        ClientVO vo = new ClientVO();
        vo.setId(entity.getId());
        return vo;
    }

    /* ******************************************************************************* *
                                            删
     * ******************************************************************************* */

    public void deleteById(Integer id){
        Client.deleteById(id) ;
    }

    public void deleteByIds(List<Integer> ids){
        if(null != ids){
            for(Integer id : ids){
                Client.deleteById(id) ;
            }
        }
    }

    public void deleteByIpAddr(String ipAddr){
        Client.deleteByIpAddr(ipAddr) ;
    }

    /* ******************************************************************************* *
                                            改
     * ******************************************************************************* */

    /**
     * 根据Id，更新Client
     *
     * @param entity
     * @return
     */
    public void update(Client entity){
        entity.update() ;
    }

    /* ******************************************************************************* *
                                            查
     * ******************************************************************************* */

    /**
     * 根据主键ID查询Client
     * TODO 补充调整代码
     * @param id
     * @return
     */
    public ClientVO retriveDetailById(int id) {
        Client entity = Client.selectDetailById(id);
        ClientVO vo = ClientVOTransform.transform(entity) ;
        return vo;
    }

    public PageResult<ClientVO> retrivePageByQuery(PageResult page, Client entity) {
        page = entity.selectPageByQuery(page);
        page.setPageData(ClientVOTransform.transformEntityList(page.getPageData())) ;
        return page;
    }

}